perm filename LINXG.OLD[XX,LCS] blob
sn#231799 filedate 1976-09-03 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE LINXG
C00018 ENDMK
C⊗;
TITLE LINXG
ENTRY LINES,PLOTS,NOIR
EXTERNAL DST,PLTR,DPY,.COMM.,ROFF,XRN,SQRT,PLOT
KK←2 ↔ L←3 ↔ LE←4 ↔ T←5 ↔ J←1
RL←6 ↔ RJ←7 ↔ B←0 ↔ H←11 ↔ JK←10
HG←12 ↔ D←13 ↔ AL←14 ↔ JJ←15
; SUBROUTINE LINES(A,B,L)
; COMMON/DST/BB,CC
; COMMON /SIZ/RSZ,JCEN,KCEN /FL/IC,NZ,NX,RZ,XGP
; COMMON/DL/IXRX,SAVER,AA /PLTR/IPLT,RHT,DIS
; COMMON R2,JA,CENTR,JB,RJQ(20),JQ(20)
; COMMON/DPY/JJ(4000),WDS(250),MEDIT,IGO
; EQUIVALENCE (ITOP,JJ(3999)),(IBOT,JJ(4000))
; 1,(JJ2,JJ(2))
; DATA BB/.008/,CC/3.5/
;C SET XGP TO 1200.0 FOR MARGIN IN XEROX COPIES
M←2 ↔ NZ←3 ↔ K←4
LINES: 0 ; GO TO 23
JRST L23 ;22 IF(JQ(1).NE.0)GO TO 23
L22: SKIPE PLTR+=27
JRST L23 ; IF(CC.EQ.1000)GO TO 23
MOVSI T,212764
CAMN T,DST+1
JRST L23 ; B=B*(CC-BB*ABS(A))
MOVE T,@(16)
MOVMS T
FMPR T,DST
FSBR T,DST+1
FMPRM T,@1(16)
MOVNS @1(16) ;23 IF(IPLT)GO TO 2
L23: SKIPGE PLTR
;; JRST L2
JRST L9
MOVE T,.COMM.+1 ;IF(JA.EQ.44)RETURN
CAIN T,=44 ;WON'T LOOK AT BARLINES FOR HEIGHT.
JRA 16,3(16)
MOVE T,@1(16)
CAMG T,DPY+1
JRST L333
MOVEM T,DPY+1 ; IF(B.LT.BOT)BOT=B
JRA 16,3(16)
L333: CAMG T,DPY+2
MOVEM T,DPY+2
JRA 16,3(16) ; IF(B.GT.TOP)TOP=B
;2 IF(IPLT.EQ.-2)RETURN
;;L2: MOVNI T,2
;; CAMN T,PLTR
;; JRA 16,3(16) ;9 M=ROFF(A*DIS)
L9: MOVE M,@(16)
FMPR M,PLTR+2
SKIPGE M
FADR M,[-=1.0]
FADR M,[=0.5]
KIFIX M,M
MOVEM M,MM# ; N=ROFF(B*RHT)
MOVE NZ,@1(16)
FMPR NZ,PLTR+1
SKIPGE NZ
FADR NZ,[-=1.0]
FADR NZ,[=0.5]
KIFIX NZ,NZ
MOVEM NZ,NN# ;8 CALL PLOT(M,N,L)
L8: MOVE T,@2(16)
MOVEM T,LL#
JSA 16,PLOT
JUMP MM
JUMP NN
JUMP LL ; END
JRA 16,3(16)
PLOTS: 0
JRA 16,1(16) ; DUMMY ROUTINE
J←10↔ A←2↔ B←3↔ C←4↔ D←5↔ E←6↔ NQ←11↔NX←12 ; SUBROUTINE NOIR(RMINI)
Y←13↔ X←14↔ L←15↔ M←1
JPOS: 0 ;C BLACKS IN NOTES
IPOS: 0 ;COMMON R2,JA,CENTR,J2,RJQ(20),JQ(12),B,C,KC,D,N,JY,M,L
IC: 0
KZ: 0
NOIR: 0 ; COMMON/PLTR/IPLT,RHT,DIS /XRN/IRN(4000)
MOVE A,.COMM.+4 ;EQUIVALENCE (PRE,IRN(1))
FMPR A,PLTR+2 ;DATA BL/7.5/,BH/6.7/
; ADJUST BH AND FL FOR HEIGHT OF NOTE AND 'WIDTH'
JSA 16,ROFF ;IPOS=ROFF(RJQ(1)*DIS)
JUMP A
KIFIX A,A
MOVEM A,IPOS
MOVE A,.COMM.+2 ;JPOS=ROFF(CENTR*RHT)
FMPR A,PLTR+1
JSA 16,ROFF
JUMP A
KIFIX A,A
;?? MOVE D,@(16)
;?? CAME D,STF+8 ;IF(RMINI.NE.RSTJ2)JPOS=JPOS+1
;?? AOS A ;TO PUSH MINI-NOTE UP ONE XGP NOTCH!!!! *******************
MOVEM A,JPOS ;SAVE FOR LATER
MOVN A,@(16) ;IF(-RMINI.EQ.PRE)GO TO 10
CAMN A,XRN
JRST NO10
MOVEM A,XRN ;PRE=-RMINI
MOVE D,[=0.25] ;D=.25
MOVE B,[=6.7] ;B=BH*RMINI*RHT
FMPR B,PLTR+1
FMPR B,@(16)
MOVE E,PLTR+2 ;E=RMINI*DIS
FMPR E,@(16)
MOVE A,[=7.5] ;A=BL*E
FMPR A,E
KIFIX 15,A ;IC=A
MOVEM 15,IC
FMPR A,A ;A=A*A
MOVN E,B ;E=-B/4.
FDVR E,[=4.0]
KIFIX 15,B ;K=B
MOVEM 15,KZ
FMPR B,B ;B=B*B
; USES EQUATION FOR ELLIPSE
MOVEI 11,1 ;N=1
MOVEI NX,2 ;NX=2
MOVN J,KZ ;6 DO 1 J=-K,K
NO1: MOVE Y,J ;Y=J*J
IMUL Y,Y
FLTR Y,Y ;FLOAT
MOVNS Y ;X=SQRT(A-(A*Y)/B)
FMPR Y,A
FDVR Y,B
FADR Y,A
JSA 16,SQRT
JUMP Y
MOVE L,E ;L=E-X
FSBR L,0
KIFIX L,L
;; MOVE M,X ;M=X+E
;; FADR M,E
FADR 0,E
KIFIX 0,0 ; THE TWO SIDES OF THE LINE
SKIPGE 11 ;IF(N)CALL EXCH(L,M)
EXCH L,0
MOVEM L,XRN-1(NX)
MOVEM 0,XRN(NX) ; C IS VERTICLE POS.
ADDI NX,2 ;NX=NX+2
FADR E,D ;E=E+D E IS TO TILT IT.
MOVNS 11 ;1 N=-N
CAMGE J,KZ
AOJA J,NO1 ;LOOP BACK
NO10: MOVE J,IPOS ;10 CALL PLOT(IPOS+3,JPOS,3)
ADDI J,3
JSA 16,PLOT
JUMP J
JUMP JPOS
JUMP [3]
MOVEI 11,2 ;N=2 1ST LOC. OF ARRAY HAS "PRE"
MOVE L,IC ;L=IPOS+IC
ADD L,IPOS
MOVN M,KZ ;DO 11 M=-K,K
NO11: MOVE J,JPOS ;J=M+JPOS
MOVEM M,PLOTS
ADD J,M ;CALL PLOT(L+IRN(N),J,2)
MOVE NX,XRN-1(11)
ADD NX,L
JSA 16,PLOT
JUMP NX
JUMP J
JUMP [2] ;CALL PLOT(L+IRN(N+1),J,2)
MOVE NX,XRN(11)
ADD NX,L
JSA 16,PLOT
JUMP NX
JUMP J
JUMP [2]
ADDI 11,2 ;11 N=N+2
MOVE M,PLOTS
CAMGE M,KZ
AOJA M,NO11
JRA 16,1(16)
END